<?php 

/**
 * Controleur permettant d'ajouter une ligne à la commande
 */
require_once('dao/Dao.php');
require_once('dao/CommandeDao.php');
require_once('dao/CarteSimDao.php');
require_once('dao/OffreVenteDao.php');
require_once('utils/csv.inc.php');
require_once('utils/ftp.inc.php');

if ($_SESSION['niveauAuth']=='1'or $_SESSION['niveauAuth']=='2' or $_SESSION['niveauAuth']=='4' or $_SESSION['niveauAuth']=='5'or $_SESSION['niveauAuth']=='6' or $_SESSION['niveauAuth']=='7'or $_SESSION['niveauAuth']=='8'or $_SESSION['niveauAuth']=='9') {


// Si un fichier a été envoyé 
if (isset($_FILES['monfichier']) ){

	$nomOrigine = $_FILES['monfichier']['name'];
	$elementsChemin = pathinfo($nomOrigine);
	$extensionFichier = $elementsChemin['extension'];
	$extensionsAutorisees = array("csv");

	if (!(in_array($extensionFichier, $extensionsAutorisees))) {
	    $error = "Le fichier n'a pas l'extension attendue";
	    
	} else {    
	    // Copie dans le repertoire du script avec un nom
	    // incluant l'heure a la seconde pres 
	    
	    $nomDestination = date("YmdHis").".".$extensionFichier;
	
	    if (move_uploaded_file($_FILES["monfichier"]["tmp_name"],  MM_MULTI_PATH.$nomDestination)) {
	        $message =  "Le fichier temporaire ".$_FILES["monfichier"]["tmp_name"].
	                " a été déplacé vers ".MM_MULTI_PATH.$nomDestination;
	    } else {
	        $error =  "Le fichier n'a pas été uploadé (trop gros ?) ou ".
	                "Le déplacement du fichier temporaire a échoué".
	                " vérifiez l'existence du répertoire ".MM_MULTI_PATH;
	    }
	}
}


if (isset($_GET['action']) and $_GET['action']=='modif'){$sim='choisie';}else{$sim='';}

if (isset($_POST['action'])){
	
	//récupération des variables
	$id_commande = $_POST['id_commande'];
	$terminal_mobile ='';
	$numero_imei='';
	
	$engagement = $_POST['engagement'];
	
	if(isset($_POST['abonnement_mobile']))
	{
	$abonnement_mobile = $_POST['abonnement_mobile'];
	}else{
	$abonnement_mobile = '';
	}
	
	if(isset($_POST['options_mobile_sms']))
	{
	$options_mobile[] = $_POST['options_mobile_sms'];
	}
	
	if(isset($_POST['options_mobile_data']))
	{
	$options_mobile[] = $_POST['options_mobile_data'];
	}
	
	if(isset($_POST['options_mobile_international']))
	{
	$options_mobile[] = $_POST['options_mobile_international'];
	}
	
	if(isset($_POST['options_mobile_bb']))
	{
	$options_mobile[] = $_POST['options_mobile_bb'];
	}
	
	if(isset($_POST['options_mobile_interne']))
	{
	$options_mobile[] = $_POST['options_mobile_interne'];
	}
	
	if(!isset($options_mobile))
	{
	$options_mobile = '';
	}


$pathSearch = sprintf(
	'%s*.csv',
	MM_MULTI_PATH
);
$files = glob($pathSearch);
rsort($files);
$file = $files[0];


$fic = fopen($file, "a+");

$sim = CarteSimDao::getCartesDisponnibles();

$ligne = 0; // compteur de ligne

//récupere les ligne commandées pour éviter les doublons
$lignes_commande = CommandeDao::findAllLigne();

	while($tab=fgetcsv($fic,1024,';'))
	{//echo $ligne; 
	
		if($ligne!=0){
		$carte_sim = $sim[$ligne]['transatelId'];
		
		$champs = count($tab);//nombre de champ dans la ligne en question
		
		$ligne_csv = array(
			'msisdn' => $tab[0],
			'rio' => $tab[1],
			'date' => $tab[2],
			'utilisateur' => $tab[3],
			'grille_tarifaire' => $tab[4],
			'reduction_abonnement' => $tab[5],
			'reduction_option_mobile' => $tab[6],
			'reduction_terminal' => $tab[7],
			'reduction_minute_national' => $tab[8],
			'reduction_minute_international' => $tab[9],
			'appel_interne' => $tab[10],
			);
			
		if(!in_array($tab[0],$lignes_commande)){ // vérifie les doublons
		CarteSimDao::changerStatut($carte_sim,"Pending");
		
		$ajoutOK = CommandeDao::ajouterLigneMobile($id_commande,$tab[3],$carte_sim,$tab[0],$tab[1],$tab[2],$terminal_mobile,$numero_imei,$abonnement_mobile,$options_mobile,$engagement,$tab[5],$tab[8],$tab[9],$tab[6],$tab[4],$tab[7],$tab[2]); 	
		}else{$error='Ligne(s) déjà existantes';}
		//var_dump($ajoutOK);
		
		}
		$ligne ++;
	}

	if (isset($ajoutOK)){
		$message = $ligne. " ligne(s) d'insérée(s)";
		redirect("liste-commande");
	} else {
		 $error = "le fichier ne s'est pas importé, Ligne(s) déjà existantes?";
	}

}
	

// Si l'id de la ligne est fournie
$ligneCommande = null;
if (isset($_GET["id"])){
	$ligneCommande = CommandeDao::findLigneById($_GET["id"]);
}

// Chargement de la commande en cours
if(isset($_GET['commande']))
{
$commande = CommandeDao::findByCommandeId($_GET['commande']);
}else{
$commande = CommandeDao::findByCommandeId($_GET['id']);
}

// Récupération des cartes SIM disponnibles
$cartes_sim = CarteSimDao::getCartesDisponnibles();

// Récupération des offres mobiles
$offres_mobile = OffreVenteDao::getOffresMobile();

//Récupération du nom du terminal
$terminal = CommandeDao::Terminal($ligneCommande['terminal_mobile']);
$ligneCommande['nom_terminal'] = $terminal['libelle'];

//Récupération du nom du forfait
if(isset($ligneCommande['abonnement_mobile']))
{
$forfait = CommandeDao::Forfait($ligneCommande['abonnement_mobile']);
$ligneCommande['nom_forfait'] = $forfait['nom'];
}

// Récupération des terminaux
$terminaux_mobile = OffreVenteDao::getTerminaux();

if(isset($_GET['action']) and $_GET['action']=='duplicate'){$ligneCommande['duplicate'] = 'oui';}


// Rendu de la page
echo $twig->render('ajout-ligne-mobile-multiple.html',
		array(	'commande' => $commande,
				'ligneCommande' => $ligneCommande,
				'cartes_sim' => $cartes_sim,
				'sim' => $sim,
				'terminaux_mobile' => $terminaux_mobile,
				'offres_mobile' => $offres_mobile,
				'message' => $message,
				'error' => $error));
}
else {
	redirect("home-admin");
}

